
#pragma warning( disable: 4049 )
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif

#ifndef __UcPi_h__
#define __UcPi_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
#ifndef __IUcPiPropertyInspector_FWD_DEFINED__
#define __IUcPiPropertyInspector_FWD_DEFINED__
typedef interface IUcPiPropertyInspector IUcPiPropertyInspector;
#endif
#ifndef __IUcPiPropertyEditControl_FWD_DEFINED__
#define __IUcPiPropertyEditControl_FWD_DEFINED__
typedef interface IUcPiPropertyEditControl IUcPiPropertyEditControl;
#endif
#ifndef __IUcPiPropertyEditEventsSink_FWD_DEFINED__
#define __IUcPiPropertyEditEventsSink_FWD_DEFINED__
typedef interface IUcPiPropertyEditEventsSink IUcPiPropertyEditEventsSink;
#endif
#ifndef __IUcPiPropertyUnspecified_FWD_DEFINED__
#define __IUcPiPropertyUnspecified_FWD_DEFINED__
typedef interface IUcPiPropertyUnspecified IUcPiPropertyUnspecified;
#endif
#ifndef __IUcPiPropertyDisplay_FWD_DEFINED__
#define __IUcPiPropertyDisplay_FWD_DEFINED__
typedef interface IUcPiPropertyDisplay IUcPiPropertyDisplay;
#endif
#ifndef __IUcPiCategorizeProperties_FWD_DEFINED__
#define __IUcPiCategorizeProperties_FWD_DEFINED__
typedef interface IUcPiCategorizeProperties IUcPiCategorizeProperties;
#endif
#ifndef __IUcPiPropCommandButtons_FWD_DEFINED__
#define __IUcPiPropCommandButtons_FWD_DEFINED__
typedef interface IUcPiPropCommandButtons IUcPiPropCommandButtons;
#endif
#ifndef __IUcPiCommandButton_FWD_DEFINED__
#define __IUcPiCommandButton_FWD_DEFINED__
typedef interface IUcPiCommandButton IUcPiCommandButton;
#endif
#ifndef __IUcPiCommandButton2_FWD_DEFINED__
#define __IUcPiCommandButton2_FWD_DEFINED__
typedef interface IUcPiCommandButton2 IUcPiCommandButton2;
#endif
#ifndef __IUcPiPropertyInspectorEventsSink_FWD_DEFINED__
#define __IUcPiPropertyInspectorEventsSink_FWD_DEFINED__
typedef interface IUcPiPropertyInspectorEventsSink IUcPiPropertyInspectorEventsSink;
#endif
#ifndef __IUcPiPropertyInspectorInputEventSink_FWD_DEFINED__
#define __IUcPiPropertyInspectorInputEventSink_FWD_DEFINED__
typedef interface IUcPiPropertyInspectorInputEventSink IUcPiPropertyInspectorInputEventSink;
#endif
#ifndef __IUcPiPropertyInspectorTheme_FWD_DEFINED__
#define __IUcPiPropertyInspectorTheme_FWD_DEFINED__
typedef interface IUcPiPropertyInspectorTheme IUcPiPropertyInspectorTheme;
#endif


#ifndef __UcPiPropertyInspector_FWD_DEFINED__
#define __UcPiPropertyInspector_FWD_DEFINED__

#ifdef __cplusplus
typedef class UcPiPropertyInspector UcPiPropertyInspector;
#else
typedef struct UcPiPropertyInspector UcPiPropertyInspector;
#endif

#endif
#include "oaidl.h"
#include "ocidl.h"

#ifdef __cplusplus
extern "C"{
#endif





#define UCPI_DEFAULT             0x00000000
#define UCPI_CLEARCACHE_REFRESH  0x00000001
#define UCPI_CLEARCACHE_DYNAMIC  0x00000002
#define UCPI_CLEARCACHE_INCLUDED 0x00000004
#define UCPI_UCAD_DYN            0x00000008
#define UCPI_UNION               0x00000010
#define UCPI_SORTBYNAME          0x00000020
#define UCPI_SORTBYWEIGHT        0x00000040
#define UCPI_REFRESH             0x00000080
#define UCPI_FILTERABLE          0x00000100
#define UCPI_EMPTYDISPLAY        0x00000200
#define UCPI_SETCONTROLFOCUS     0x00000001
#define UCPI_SCROLLTOCONTROL     0x00000002
#define     UC_TVS_TOOLTIPS             0x00000001
#define     UC_TVS_GRIDLINES            0x00000002
#define     UC_TVS_SELHIGHLIGHT         0x00000004
#define     UC_TVS_GRIDMARKER           0x00000008
#define     UC_TVS_GRIDROUNDSTYLE       0x00000010
#define     UC_TVS_GRIDSTATUSBAR        0x00000020
#define     UC_TVS_GRIDSCROLLRIGHT      0x00000040
#define     UC_TVS_CALCULATOR           0x00000080
#define     UC_TVS_NOGRIDINDENTATION    0x00000100
#define     UC_TVS_NOCATEGORIES         0x00000200
#define     UC_TVS_NOCONTEXTMENU        0x00000400
#define     UC_TVS_GRIDGRADIENTSTYLE    0x00000800

#define     UC_TVS_GRID                 ((UC_TVS_SELHIGHLIGHT) | (UC_TVS_GRIDSTATUSBAR) | (UC_TVS_GRIDLINES) | (UC_TVS_TOOLTIPS) | (UC_TVS_GRIDROUNDSTYLE))
#define DISPID_READONLYBACKCOLOR -2000
#define DISPID_READONLYFORECOLOR -2001
#define DISPID_RBUTTONDOWN -2030
#define DISPID_MBUTTONDOWN -2031
#define DISPID_CHECKED -2010
#define DISPID_BEGINPROPERTYUPDATE -2002
#define DISPID_ENDPROPERTYUPDATE -2003
typedef   DECLSPEC_UUID("EC9231D3-5A17-11E7-B72E-BC5FF42AC839")
enum UcPiColorIndex
    {
        UCPI_COLOR_TOP	= 0,
        UCPI_COLOR_CATEGORY	= 0x1,
        UCPI_COLOR_ITEM	= 0x2,
        UCPI_COLOR_BORDER	= 0x3,
        UCPI_COLOR_BORDER_ITEM	= 0x4,
        UCPI_COLOR_TEXT_TOP	= 0x5,
        UCPI_COLOR_TEXT_CATEGORY	= 0x6,
        UCPI_COLOR_TEXT_ITEM	= 0x7,
        UCPI_COLOR_FORE_HIGHLIGHT	= 0x8,
        UCPI_COLOR_BACK_HIGHLIGHT	= 0x9,
        UCPI_COLOR_3DSHADOW	= 0xa,
        UCPI_COLOR_BACK_CONTROL	= 0xb,
        UCPI_COLOR_SCROLLBACKGROUND	= 0xc,
        UCPI_COLOR_SCROLLTHUMB	= 0xd,
        UCPI_COLOR_SCROLLARROW	= 0xe,
        UCPI_COLOR_DOUBLECHEVRON1	= 0xf,
        UCPI_COLOR_DOUBLECHEVRON2	= 0x10,
        UCPI_COLOR_SINGLECHEVRON	= 0x11,
        UCPI_COLOR_TOP_GRADIENT1	= 0x12,
        UCPI_COLOR_TOP_GRADIENT2	= 0x13,
        UCPI_COLOR_TOP_CLOSED_OUTER_BORDER	= 0x14,
        UCPI_COLOR_TOP_OPEN_OUTER_BORDER	= 0x15,
        UCPI_COLOR_TOP_INNER_BORDER	= 0x16,
        UCPI_COLOR_SCROLL_BACKGROUNDBORDER	= 0x17,
        UCPI_COLOR_SCROLL_BACKGROUNDGRADIENT1	= 0x18,
        UCPI_COLOR_SCROLL_BACKGROUNDGRADIENT2	= 0x19,
        UCPI_COLOR_SCROLL_SLIDER_INACTIVE	= 0x1a,
        UCPI_COLOR_SCROLL_SLIDER_ACTIVE_OUTERBORDER	= 0x1b,
        UCPI_COLOR_SCROLL_SLIDER_ACTIVE_OUTERGRADIENT1	= 0x1c,
        UCPI_COLOR_SCROLL_SLIDER_ACTIVE_OUTERGRADIENT2	= 0x1d,
        UCPI_COLOR_SCROLL_SLIDER_ACTIVE_OUTERGRADIENT3	= 0x1e,
        UCPI_COLOR_SCROLL_SLIDER_ACTIVE_OUTERGRADIENT4	= 0x1f,
        UCPI_COLOR_SCROLL_SLIDER_ACTIVE_INNERGRADIENT1	= 0x20,
        UCPI_COLOR_SCROLL_SLIDER_ACTIVE_INNERGRADIENT2	= 0x21,
        UCPI_COLOR_TEXT_LABEL	= 0x22,
        UCPI_COLOR_CELL_HIGHLIGHT	= 0x23,
        UCPI_COLOR_DISABLED_TEXT_ITEM	= 0x24
    } 	UcPiColorIndex;

#define IPropertyInspector IUcPiPropertyInspector
#define IID_IPropertyInspector IID_IUcPiPropertyInspector
#define CLSID_PropertyInspector CLSID_UcPiPropertyInspector
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0000_v0_0_s_ifspec;

#ifndef __IUcPiPropertyInspector_INTERFACE_DEFINED__
#define __IUcPiPropertyInspector_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPiPropertyInspector;

#if defined(__cplusplus) && !defined(CINTERFACE)
  
    MIDL_INTERFACE("EC92316D-5A17-11E7-B72E-BC5FF42AC839")
    IUcPiPropertyInspector : public IDispatch
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE Reset(
             VARIANT *pObjUnkArray,
             VARIANT *pDynUnkArray,
             DWORD dwFlags) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_Style(
             DWORD *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_Style(
             DWORD newVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_KeepFocus(
             VARIANT_BOOL *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE SetColor(
             UcPiColorIndex index,
             OLE_COLOR color) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetColor(
             UcPiColorIndex __MIDL__IUcPiPropertyInspector0000,
             OLE_COLOR *pColor) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_Font(
             IUnknown **pIFont) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_Font(
             IUnknown *pIFont) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_BoldFont(
             IUnknown **pIFont) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_BoldFont(
             IUnknown *pIFont) = 0;

        virtual  HRESULT STDMETHODCALLTYPE SetPersistence(
             IUnknown *pINode) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetPersistence(
             IUnknown *pINode) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_DelayRefresh(
             VARIANT_BOOL *pbDelayRefresh) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_DelayRefresh(
             VARIANT_BOOL bDelayRefresh) = 0;

    };

#else

    typedef struct IUcPiPropertyInspectorVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPiPropertyInspector * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPiPropertyInspector * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPiPropertyInspector * This);

        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
            IUcPiPropertyInspector * This,
             UINT *pctinfo);

        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
            IUcPiPropertyInspector * This,
             UINT iTInfo,
             LCID lcid,
             ITypeInfo **ppTInfo);

        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
            IUcPiPropertyInspector * This,
             REFIID riid,
             LPOLESTR *rgszNames,
             UINT cNames,
             LCID lcid,
             DISPID *rgDispId);

         HRESULT ( STDMETHODCALLTYPE *Invoke )(
            IUcPiPropertyInspector * This,
             DISPID dispIdMember,
             REFIID riid,
             LCID lcid,
             WORD wFlags,
             DISPPARAMS *pDispParams,
             VARIANT *pVarResult,
             EXCEPINFO *pExcepInfo,
             UINT *puArgErr);

         HRESULT ( STDMETHODCALLTYPE *Reset )(
            IUcPiPropertyInspector * This,
             VARIANT *pObjUnkArray,
             VARIANT *pDynUnkArray,
             DWORD dwFlags);

         HRESULT ( STDMETHODCALLTYPE *get_Style )(
            IUcPiPropertyInspector * This,
             DWORD *pVal);

         HRESULT ( STDMETHODCALLTYPE *put_Style )(
            IUcPiPropertyInspector * This,
             DWORD newVal);

         HRESULT ( STDMETHODCALLTYPE *get_KeepFocus )(
            IUcPiPropertyInspector * This,
             VARIANT_BOOL *pVal);

         HRESULT ( STDMETHODCALLTYPE *SetColor )(
            IUcPiPropertyInspector * This,
             UcPiColorIndex index,
             OLE_COLOR color);

         HRESULT ( STDMETHODCALLTYPE *GetColor )(
            IUcPiPropertyInspector * This,
             UcPiColorIndex __MIDL__IUcPiPropertyInspector0000,
             OLE_COLOR *pColor);

         HRESULT ( STDMETHODCALLTYPE *get_Font )(
            IUcPiPropertyInspector * This,
             IUnknown **pIFont);

         HRESULT ( STDMETHODCALLTYPE *put_Font )(
            IUcPiPropertyInspector * This,
             IUnknown *pIFont);

         HRESULT ( STDMETHODCALLTYPE *get_BoldFont )(
            IUcPiPropertyInspector * This,
             IUnknown **pIFont);

         HRESULT ( STDMETHODCALLTYPE *put_BoldFont )(
            IUcPiPropertyInspector * This,
             IUnknown *pIFont);

         HRESULT ( STDMETHODCALLTYPE *SetPersistence )(
            IUcPiPropertyInspector * This,
             IUnknown *pINode);

         HRESULT ( STDMETHODCALLTYPE *GetPersistence )(
            IUcPiPropertyInspector * This,
             IUnknown *pINode);

         HRESULT ( STDMETHODCALLTYPE *get_DelayRefresh )(
            IUcPiPropertyInspector * This,
             VARIANT_BOOL *pbDelayRefresh);

         HRESULT ( STDMETHODCALLTYPE *put_DelayRefresh )(
            IUcPiPropertyInspector * This,
             VARIANT_BOOL bDelayRefresh);

        END_INTERFACE
    } IUcPiPropertyInspectorVtbl;

    interface IUcPiPropertyInspector
    {
        CONST_VTBL struct IUcPiPropertyInspectorVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPiPropertyInspector_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPiPropertyInspector_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPiPropertyInspector_Release(This)	\
    ((This)->lpVtbl -> Release(This))
#define IUcPiPropertyInspector_GetTypeInfoCount(This,pctinfo)	\
    ((This)->lpVtbl -> GetTypeInfoCount(This,pctinfo))

#define IUcPiPropertyInspector_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ((This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo))

#define IUcPiPropertyInspector_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ((This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId))

#define IUcPiPropertyInspector_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ((This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr))
#define IUcPiPropertyInspector_Reset(This,pObjUnkArray,pDynUnkArray,dwFlags)	\
    ((This)->lpVtbl -> Reset(This,pObjUnkArray,pDynUnkArray,dwFlags))

#define IUcPiPropertyInspector_get_Style(This,pVal)	\
    ((This)->lpVtbl -> get_Style(This,pVal))

#define IUcPiPropertyInspector_put_Style(This,newVal)	\
    ((This)->lpVtbl -> put_Style(This,newVal))

#define IUcPiPropertyInspector_get_KeepFocus(This,pVal)	\
    ((This)->lpVtbl -> get_KeepFocus(This,pVal))

#define IUcPiPropertyInspector_SetColor(This,index,color)	\
    ((This)->lpVtbl -> SetColor(This,index,color))

#define IUcPiPropertyInspector_GetColor(This,__MIDL__IUcPiPropertyInspector0000,pColor)	\
    ((This)->lpVtbl -> GetColor(This,__MIDL__IUcPiPropertyInspector0000,pColor))

#define IUcPiPropertyInspector_get_Font(This,pIFont)	\
    ((This)->lpVtbl -> get_Font(This,pIFont))

#define IUcPiPropertyInspector_put_Font(This,pIFont)	\
    ((This)->lpVtbl -> put_Font(This,pIFont))

#define IUcPiPropertyInspector_get_BoldFont(This,pIFont)	\
    ((This)->lpVtbl -> get_BoldFont(This,pIFont))

#define IUcPiPropertyInspector_put_BoldFont(This,pIFont)	\
    ((This)->lpVtbl -> put_BoldFont(This,pIFont))

#define IUcPiPropertyInspector_SetPersistence(This,pINode)	\
    ((This)->lpVtbl -> SetPersistence(This,pINode))

#define IUcPiPropertyInspector_GetPersistence(This,pINode)	\
    ((This)->lpVtbl -> GetPersistence(This,pINode))

#define IUcPiPropertyInspector_get_DelayRefresh(This,pbDelayRefresh)	\
    ((This)->lpVtbl -> get_DelayRefresh(This,pbDelayRefresh))

#define IUcPiPropertyInspector_put_DelayRefresh(This,bDelayRefresh)	\
    ((This)->lpVtbl -> put_DelayRefresh(This,bDelayRefresh))

#endif


#endif 	




#endif 	



#define IPropertyEditControl IUcPiPropertyEditControl
#define IID_IPropertyEditControl IID_IUcPiPropertyEditControl
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0001_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0001_v0_0_s_ifspec;

#ifndef __IUcPiPropertyEditControl_INTERFACE_DEFINED__
#define __IUcPiPropertyEditControl_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPiPropertyEditControl;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("EC92308E-5A17-11E7-B72E-BC5FF42AC839")
    IUcPiPropertyEditControl : public IDispatch
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE InitEditControl(
             LPVARIANT pVarObjDispArray,
             LPVARIANT pVarDynPropArray,
             LPVARIANT pDispidArray,
             VARIANT_BOOL bReadOnly) = 0;

        virtual  HRESULT STDMETHODCALLTYPE Refresh(
             DWORD dwFlags) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_KeepFocus(
             VARIANT_BOOL *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_BackColor(
             OLE_COLOR clr) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_BackColor(
             OLE_COLOR *pclr) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_ForeColor(
             OLE_COLOR clr) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_ForeColor(
             OLE_COLOR *pclr) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_ReadOnlyBackColor(
             OLE_COLOR clr) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_ReadOnlyBackColor(
             OLE_COLOR *pclr) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_ReadOnlyForeColor(
             OLE_COLOR clr) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_ReadOnlyForeColor(
             OLE_COLOR *pclr) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_Font(
             IUnknown *pIFont) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_Font(
             IUnknown **pIFont) = 0;

    };

#else

    typedef struct IUcPiPropertyEditControlVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPiPropertyEditControl * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPiPropertyEditControl * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPiPropertyEditControl * This);

        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
            IUcPiPropertyEditControl * This,
             UINT *pctinfo);

        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
            IUcPiPropertyEditControl * This,
             UINT iTInfo,
             LCID lcid,
             ITypeInfo **ppTInfo);

        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
            IUcPiPropertyEditControl * This,
             REFIID riid,
             LPOLESTR *rgszNames,
             UINT cNames,
             LCID lcid,
             DISPID *rgDispId);

         HRESULT ( STDMETHODCALLTYPE *Invoke )(
            IUcPiPropertyEditControl * This,
             DISPID dispIdMember,
             REFIID riid,
             LCID lcid,
             WORD wFlags,
             DISPPARAMS *pDispParams,
             VARIANT *pVarResult,
             EXCEPINFO *pExcepInfo,
             UINT *puArgErr);

         HRESULT ( STDMETHODCALLTYPE *InitEditControl )(
            IUcPiPropertyEditControl * This,
             LPVARIANT pVarObjDispArray,
             LPVARIANT pVarDynPropArray,
             LPVARIANT pDispidArray,
             VARIANT_BOOL bReadOnly);

         HRESULT ( STDMETHODCALLTYPE *Refresh )(
            IUcPiPropertyEditControl * This,
             DWORD dwFlags);

         HRESULT ( STDMETHODCALLTYPE *get_KeepFocus )(
            IUcPiPropertyEditControl * This,
             VARIANT_BOOL *pVal);

         HRESULT ( STDMETHODCALLTYPE *put_BackColor )(
            IUcPiPropertyEditControl * This,
             OLE_COLOR clr);

         HRESULT ( STDMETHODCALLTYPE *get_BackColor )(
            IUcPiPropertyEditControl * This,
             OLE_COLOR *pclr);

         HRESULT ( STDMETHODCALLTYPE *put_ForeColor )(
            IUcPiPropertyEditControl * This,
             OLE_COLOR clr);

         HRESULT ( STDMETHODCALLTYPE *get_ForeColor )(
            IUcPiPropertyEditControl * This,
             OLE_COLOR *pclr);

         HRESULT ( STDMETHODCALLTYPE *put_ReadOnlyBackColor )(
            IUcPiPropertyEditControl * This,
             OLE_COLOR clr);

         HRESULT ( STDMETHODCALLTYPE *get_ReadOnlyBackColor )(
            IUcPiPropertyEditControl * This,
             OLE_COLOR *pclr);

         HRESULT ( STDMETHODCALLTYPE *put_ReadOnlyForeColor )(
            IUcPiPropertyEditControl * This,
             OLE_COLOR clr);

         HRESULT ( STDMETHODCALLTYPE *get_ReadOnlyForeColor )(
            IUcPiPropertyEditControl * This,
             OLE_COLOR *pclr);

         HRESULT ( STDMETHODCALLTYPE *put_Font )(
            IUcPiPropertyEditControl * This,
             IUnknown *pIFont);

         HRESULT ( STDMETHODCALLTYPE *get_Font )(
            IUcPiPropertyEditControl * This,
             IUnknown **pIFont);

        END_INTERFACE
    } IUcPiPropertyEditControlVtbl;

    interface IUcPiPropertyEditControl
    {
        CONST_VTBL struct IUcPiPropertyEditControlVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPiPropertyEditControl_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPiPropertyEditControl_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPiPropertyEditControl_Release(This)	\
    ((This)->lpVtbl -> Release(This))


#define IUcPiPropertyEditControl_GetTypeInfoCount(This,pctinfo)	\
    ((This)->lpVtbl -> GetTypeInfoCount(This,pctinfo))

#define IUcPiPropertyEditControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ((This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo))

#define IUcPiPropertyEditControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ((This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId))

#define IUcPiPropertyEditControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ((This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr))


#define IUcPiPropertyEditControl_InitEditControl(This,pVarObjDispArray,pVarDynPropArray,pDispidArray,bReadOnly)	\
    ((This)->lpVtbl -> InitEditControl(This,pVarObjDispArray,pVarDynPropArray,pDispidArray,bReadOnly))

#define IUcPiPropertyEditControl_Refresh(This,dwFlags)	\
    ((This)->lpVtbl -> Refresh(This,dwFlags))

#define IUcPiPropertyEditControl_get_KeepFocus(This,pVal)	\
    ((This)->lpVtbl -> get_KeepFocus(This,pVal))

#define IUcPiPropertyEditControl_put_BackColor(This,clr)	\
    ((This)->lpVtbl -> put_BackColor(This,clr))

#define IUcPiPropertyEditControl_get_BackColor(This,pclr)	\
    ((This)->lpVtbl -> get_BackColor(This,pclr))

#define IUcPiPropertyEditControl_put_ForeColor(This,clr)	\
    ((This)->lpVtbl -> put_ForeColor(This,clr))

#define IUcPiPropertyEditControl_get_ForeColor(This,pclr)	\
    ((This)->lpVtbl -> get_ForeColor(This,pclr))

#define IUcPiPropertyEditControl_put_ReadOnlyBackColor(This,clr)	\
    ((This)->lpVtbl -> put_ReadOnlyBackColor(This,clr))

#define IUcPiPropertyEditControl_get_ReadOnlyBackColor(This,pclr)	\
    ((This)->lpVtbl -> get_ReadOnlyBackColor(This,pclr))

#define IUcPiPropertyEditControl_put_ReadOnlyForeColor(This,clr)	\
    ((This)->lpVtbl -> put_ReadOnlyForeColor(This,clr))

#define IUcPiPropertyEditControl_get_ReadOnlyForeColor(This,pclr)	\
    ((This)->lpVtbl -> get_ReadOnlyForeColor(This,pclr))

#define IUcPiPropertyEditControl_put_Font(This,pIFont)	\
    ((This)->lpVtbl -> put_Font(This,pIFont))

#define IUcPiPropertyEditControl_get_Font(This,pIFont)	\
    ((This)->lpVtbl -> get_Font(This,pIFont))

#endif
#endif






#endif 	



#define IPropEditUIEventsSink IUcPiPropertyEditEventsSink
#define IID_IPropEditUIEventsSink IID_IUcPiPropertyEditEventsSink
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0002_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0002_v0_0_s_ifspec;

#ifndef __IUcPiPropertyEditEventsSink_INTERFACE_DEFINED__
#define __IUcPiPropertyEditEventsSink_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPiPropertyEditEventsSink;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("EC923153-5A17-11E7-B72E-BC5FF42AC839")
    IUcPiPropertyEditEventsSink : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE OnClick( void) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnDblClick( void) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnKeyDown(
             LONG_PTR pnChar,
             LONG_PTR keyData) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnKeyUp(
             LONG_PTR pnChar,
             LONG_PTR keyData) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnRButtonDown(
             WPARAM wParam,
             LPARAM lParam) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnMButtonDown(
             WPARAM wParam,
             LPARAM lParam) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnBeginPropertyUpdate( void) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnEndPropertyUpdate( void) = 0;

    };

#else

    typedef struct IUcPiPropertyEditEventsSinkVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPiPropertyEditEventsSink * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPiPropertyEditEventsSink * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPiPropertyEditEventsSink * This);

         HRESULT ( STDMETHODCALLTYPE *OnClick )(
            IUcPiPropertyEditEventsSink * This);

         HRESULT ( STDMETHODCALLTYPE *OnDblClick )(
            IUcPiPropertyEditEventsSink * This);

         HRESULT ( STDMETHODCALLTYPE *OnKeyDown )(
            IUcPiPropertyEditEventsSink * This,
             LONG_PTR pnChar,
             LONG_PTR keyData);

         HRESULT ( STDMETHODCALLTYPE *OnKeyUp )(
            IUcPiPropertyEditEventsSink * This,
             LONG_PTR pnChar,
             LONG_PTR keyData);

         HRESULT ( STDMETHODCALLTYPE *OnRButtonDown )(
            IUcPiPropertyEditEventsSink * This,
             WPARAM wParam,
             LPARAM lParam);

         HRESULT ( STDMETHODCALLTYPE *OnMButtonDown )(
            IUcPiPropertyEditEventsSink * This,
             WPARAM wParam,
             LPARAM lParam);

         HRESULT ( STDMETHODCALLTYPE *OnBeginPropertyUpdate )(
            IUcPiPropertyEditEventsSink * This);

         HRESULT ( STDMETHODCALLTYPE *OnEndPropertyUpdate )(
            IUcPiPropertyEditEventsSink * This);

        END_INTERFACE
    } IUcPiPropertyEditEventsSinkVtbl;

    interface IUcPiPropertyEditEventsSink
    {
        CONST_VTBL struct IUcPiPropertyEditEventsSinkVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPiPropertyEditEventsSink_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPiPropertyEditEventsSink_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPiPropertyEditEventsSink_Release(This)	\
    ((This)->lpVtbl -> Release(This))
#define IUcPiPropertyEditEventsSink_OnClick(This)	\
    ((This)->lpVtbl -> OnClick(This))

#define IUcPiPropertyEditEventsSink_OnDblClick(This)	\
    ((This)->lpVtbl -> OnDblClick(This))

#define IUcPiPropertyEditEventsSink_OnKeyDown(This,pnChar,keyData)	\
    ((This)->lpVtbl -> OnKeyDown(This,pnChar,keyData))

#define IUcPiPropertyEditEventsSink_OnKeyUp(This,pnChar,keyData)	\
    ((This)->lpVtbl -> OnKeyUp(This,pnChar,keyData))

#define IUcPiPropertyEditEventsSink_OnRButtonDown(This,wParam,lParam)	\
    ((This)->lpVtbl -> OnRButtonDown(This,wParam,lParam))

#define IUcPiPropertyEditEventsSink_OnMButtonDown(This,wParam,lParam)	\
    ((This)->lpVtbl -> OnMButtonDown(This,wParam,lParam))

#define IUcPiPropertyEditEventsSink_OnBeginPropertyUpdate(This)	\
    ((This)->lpVtbl -> OnBeginPropertyUpdate(This))

#define IUcPiPropertyEditEventsSink_OnEndPropertyUpdate(This)	\
    ((This)->lpVtbl -> OnEndPropertyUpdate(This))

#endif


#endif 	




#endif 	


#define IPropertyUnspecified  IUcPiPropertyUnspecified
#define IID_IPropertyUnspecified IID_IUcPiPropertyUnspecified
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0003_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0003_v0_0_s_ifspec;

#ifndef __IUcPiPropertyUnspecified_INTERFACE_DEFINED__
#define __IUcPiPropertyUnspecified_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPiPropertyUnspecified;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("EC923213-5A17-11E7-B72E-BC5FF42AC839")
    IUcPiPropertyUnspecified : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE IsValueUnspecified(
             VARIANT varId,
             VARIANT_BOOL *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE SetUnspecified(
             VARIANT varId,
             VARIANT_BOOL bIsUnspecified) = 0;

        virtual  HRESULT STDMETHODCALLTYPE IsUnspecifiedAllowed(
             VARIANT varId,
             VARIANT_BOOL *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetUnspecifiedString(
             VARIANT varId,
             BSTR *pVal) = 0;

    };

#else

    typedef struct IUcPiPropertyUnspecifiedVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPiPropertyUnspecified * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPiPropertyUnspecified * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPiPropertyUnspecified * This);

         HRESULT ( STDMETHODCALLTYPE *IsValueUnspecified )(
            IUcPiPropertyUnspecified * This,
             VARIANT varId,
             VARIANT_BOOL *pVal);

         HRESULT ( STDMETHODCALLTYPE *SetUnspecified )(
            IUcPiPropertyUnspecified * This,
             VARIANT varId,
             VARIANT_BOOL bIsUnspecified);

         HRESULT ( STDMETHODCALLTYPE *IsUnspecifiedAllowed )(
            IUcPiPropertyUnspecified * This,
             VARIANT varId,
             VARIANT_BOOL *pVal);

         HRESULT ( STDMETHODCALLTYPE *GetUnspecifiedString )(
            IUcPiPropertyUnspecified * This,
             VARIANT varId,
             BSTR *pVal);

        END_INTERFACE
    } IUcPiPropertyUnspecifiedVtbl;

    interface IUcPiPropertyUnspecified
    {
        CONST_VTBL struct IUcPiPropertyUnspecifiedVtbl *lpVtbl;
    };
#ifdef COBJMACROS


#define IUcPiPropertyUnspecified_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPiPropertyUnspecified_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPiPropertyUnspecified_Release(This)	\
    ((This)->lpVtbl -> Release(This))
#define IUcPiPropertyUnspecified_IsValueUnspecified(This,varId,pVal)	\
    ((This)->lpVtbl -> IsValueUnspecified(This,varId,pVal))

#define IUcPiPropertyUnspecified_SetUnspecified(This,varId,bIsUnspecified)	\
    ((This)->lpVtbl -> SetUnspecified(This,varId,bIsUnspecified))

#define IUcPiPropertyUnspecified_IsUnspecifiedAllowed(This,varId,pVal)	\
    ((This)->lpVtbl -> IsUnspecifiedAllowed(This,varId,pVal))

#define IUcPiPropertyUnspecified_GetUnspecifiedString(This,varId,pVal)	\
    ((This)->lpVtbl -> GetUnspecifiedString(This,varId,pVal))

#endif


#endif 	




#endif 	



#define IPerPropertyDisplay IUcPiPropertyDisplay
#define IID_IPerPropertyDisplay IID_IUcPiPropertyDisplay
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0004_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0004_v0_0_s_ifspec;

#ifndef __IUcPiPropertyDisplay_INTERFACE_DEFINED__
#define __IUcPiPropertyDisplay_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPiPropertyDisplay;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("EC923214-5A17-11E7-B72E-BC5FF42AC839")
    IUcPiPropertyDisplay : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE GetCustomPropertyCtrl(
             VARIANT Id,
             LCID lcid,
             BSTR *pProgId) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetPropertyIcon(
             VARIANT Id,
             IUnknown **pIcon) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetPropTextColor(
             VARIANT Id,
             OLE_COLOR *pTextColor) = 0;

        virtual  HRESULT STDMETHODCALLTYPE IsFullView(
             VARIANT Id,
             VARIANT_BOOL *pbVisible,
             DWORD *pIntegralHeight) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetPropertyWeight(
             VARIANT Id,
             long *pPropertyWeight) = 0;

    };

#else

    typedef struct IUcPiPropertyDisplayVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPiPropertyDisplay * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPiPropertyDisplay * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPiPropertyDisplay * This);

         HRESULT ( STDMETHODCALLTYPE *GetCustomPropertyCtrl )(
            IUcPiPropertyDisplay * This,
             VARIANT Id,
             LCID lcid,
             BSTR *pProgId);

         HRESULT ( STDMETHODCALLTYPE *GetPropertyIcon )(
            IUcPiPropertyDisplay * This,
             VARIANT Id,
             IUnknown **pIcon);

         HRESULT ( STDMETHODCALLTYPE *GetPropTextColor )(
            IUcPiPropertyDisplay * This,
             VARIANT Id,
             OLE_COLOR *pTextColor);

         HRESULT ( STDMETHODCALLTYPE *IsFullView )(
            IUcPiPropertyDisplay * This,
             VARIANT Id,
             VARIANT_BOOL *pbVisible,
             DWORD *pIntegralHeight);

         HRESULT ( STDMETHODCALLTYPE *GetPropertyWeight )(
            IUcPiPropertyDisplay * This,
             VARIANT Id,
             long *pPropertyWeight);

        END_INTERFACE
    } IUcPiPropertyDisplayVtbl;

    interface IUcPiPropertyDisplay
    {
        CONST_VTBL struct IUcPiPropertyDisplayVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPiPropertyDisplay_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPiPropertyDisplay_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPiPropertyDisplay_Release(This)	\
    ((This)->lpVtbl -> Release(This))
#define IUcPiPropertyDisplay_GetCustomPropertyCtrl(This,Id,lcid,pProgId)	\
    ((This)->lpVtbl -> GetCustomPropertyCtrl(This,Id,lcid,pProgId))

#define IUcPiPropertyDisplay_GetPropertyIcon(This,Id,pIcon)	\
    ((This)->lpVtbl -> GetPropertyIcon(This,Id,pIcon))

#define IUcPiPropertyDisplay_GetPropTextColor(This,Id,pTextColor)	\
    ((This)->lpVtbl -> GetPropTextColor(This,Id,pTextColor))

#define IUcPiPropertyDisplay_IsFullView(This,Id,pbVisible,pIntegralHeight)	\
    ((This)->lpVtbl -> IsFullView(This,Id,pbVisible,pIntegralHeight))

#define IUcPiPropertyDisplay_GetPropertyWeight(This,Id,pPropertyWeight)	\
    ((This)->lpVtbl -> GetPropertyWeight(This,Id,pPropertyWeight))

#endif


#endif 	




#endif 	


#define ICategorizeProperties2 IUcPiCategorizeProperties
#define IID_ICategorizeProperties2 IID_IUcPiCategorizeProperties
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0005_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0005_v0_0_s_ifspec;

#ifndef __IUcPiCategorizeProperties_INTERFACE_DEFINED__
#define __IUcPiCategorizeProperties_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPiCategorizeProperties;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("EC923215-5A17-11E7-B72E-BC5FF42AC839")
    IUcPiCategorizeProperties : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE MapPropertyToCategory(
             DISPID dispID,
             int *pCatID) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetCategoryName(
             int CatID,
             LCID lCid,
             BSTR *pCategoryName) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetCategoryDescription(
             int CatID,
             LCID lCid,
             BSTR *pCategoryDescription) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetCategoryWeight(
             int CatID,
             long *pCategoryWeight) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetParentCategory(
             int CatID,
             int *pParentCatID) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetUniqueID(
             BSTR *pVal) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetCommandButtons(
             int CatID,
             VARIANT *pCatCmdBtns) = 0;

    };

#else

    typedef struct IUcPiCategorizePropertiesVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPiCategorizeProperties * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPiCategorizeProperties * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPiCategorizeProperties * This);

         HRESULT ( STDMETHODCALLTYPE *MapPropertyToCategory )(
            IUcPiCategorizeProperties * This,
             DISPID dispID,
             int *pCatID);

         HRESULT ( STDMETHODCALLTYPE *GetCategoryName )(
            IUcPiCategorizeProperties * This,
             int CatID,
             LCID lCid,
             BSTR *pCategoryName);

         HRESULT ( STDMETHODCALLTYPE *GetCategoryDescription )(
            IUcPiCategorizeProperties * This,
             int CatID,
             LCID lCid,
             BSTR *pCategoryDescription);

         HRESULT ( STDMETHODCALLTYPE *GetCategoryWeight )(
            IUcPiCategorizeProperties * This,
             int CatID,
             long *pCategoryWeight);

         HRESULT ( STDMETHODCALLTYPE *GetParentCategory )(
            IUcPiCategorizeProperties * This,
             int CatID,
             int *pParentCatID);

         HRESULT ( STDMETHODCALLTYPE *GetUniqueID )(
            IUcPiCategorizeProperties * This,
             BSTR *pVal);

         HRESULT ( STDMETHODCALLTYPE *GetCommandButtons )(
            IUcPiCategorizeProperties * This,
             int CatID,
             VARIANT *pCatCmdBtns);

        END_INTERFACE
    } IUcPiCategorizePropertiesVtbl;

    interface IUcPiCategorizeProperties
    {
        CONST_VTBL struct IUcPiCategorizePropertiesVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPiCategorizeProperties_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPiCategorizeProperties_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPiCategorizeProperties_Release(This)	\
    ((This)->lpVtbl -> Release(This))


#define IUcPiCategorizeProperties_MapPropertyToCategory(This,dispID,pCatID)	\
    ((This)->lpVtbl -> MapPropertyToCategory(This,dispID,pCatID))

#define IUcPiCategorizeProperties_GetCategoryName(This,CatID,lCid,pCategoryName)	\
    ((This)->lpVtbl -> GetCategoryName(This,CatID,lCid,pCategoryName))

#define IUcPiCategorizeProperties_GetCategoryDescription(This,CatID,lCid,pCategoryDescription)	\
    ((This)->lpVtbl -> GetCategoryDescription(This,CatID,lCid,pCategoryDescription))

#define IUcPiCategorizeProperties_GetCategoryWeight(This,CatID,pCategoryWeight)	\
    ((This)->lpVtbl -> GetCategoryWeight(This,CatID,pCategoryWeight))

#define IUcPiCategorizeProperties_GetParentCategory(This,CatID,pParentCatID)	\
    ((This)->lpVtbl -> GetParentCategory(This,CatID,pParentCatID))

#define IUcPiCategorizeProperties_GetUniqueID(This,pVal)	\
    ((This)->lpVtbl -> GetUniqueID(This,pVal))

#define IUcPiCategorizeProperties_GetCommandButtons(This,CatID,pCatCmdBtns)	\
    ((This)->lpVtbl -> GetCommandButtons(This,CatID,pCatCmdBtns))

#endif


#endif 	




#endif 	





#define IPropCommandButtons IUcPiPropCommandButtons
#define IID_IPropCommandButtons IID_IUcPiPropCommandButtons
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0006_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0006_v0_0_s_ifspec;

#ifndef __IUcPiPropCommandButtons_INTERFACE_DEFINED__
#define __IUcPiPropCommandButtons_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPiPropCommandButtons;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("EC923216-5A17-11E7-B72E-BC5FF42AC839")
    IUcPiPropCommandButtons : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE GetButtons(
             VARIANT *pButtons) = 0;

    };

#else

    typedef struct IUcPiPropCommandButtonsVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPiPropCommandButtons * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPiPropCommandButtons * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPiPropCommandButtons * This);

         HRESULT ( STDMETHODCALLTYPE *GetButtons )(
            IUcPiPropCommandButtons * This,
             VARIANT *pButtons);

        END_INTERFACE
    } IUcPiPropCommandButtonsVtbl;

    interface IUcPiPropCommandButtons
    {
        CONST_VTBL struct IUcPiPropCommandButtonsVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPiPropCommandButtons_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPiPropCommandButtons_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPiPropCommandButtons_Release(This)	\
    ((This)->lpVtbl -> Release(This))


#define IUcPiPropCommandButtons_GetButtons(This,pButtons)	\
    ((This)->lpVtbl -> GetButtons(This,pButtons))

#endif


#endif 	




#endif 	





#define ICommandButton IUcPiCommandButton
#define IID_ICommandButton IID_IUcPiCommandButton
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0007_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0007_v0_0_s_ifspec;

#ifndef __IUcPiCommandButton_INTERFACE_DEFINED__
#define __IUcPiCommandButton_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPiCommandButton;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("EC923217-5A17-11E7-B72E-BC5FF42AC839")
    IUcPiCommandButton : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE GetName(
             LCID lcid,
             BSTR *name) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_EnabledPicture(
             IUnknown **pPicture) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_DisabledPicture(
             IUnknown **pPicture) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_Enabled(
             VARIANT_BOOL *bEnabled) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_Enabled(
             VARIANT_BOOL bEnabled) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_Checked(
             VARIANT_BOOL *bChecked) = 0;

        virtual  HRESULT STDMETHODCALLTYPE put_Checked(
             VARIANT_BOOL bChecked) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_ButtonStyle(
             long *style) = 0;

        virtual  HRESULT STDMETHODCALLTYPE Execute(
             VARIANT Objects) = 0;

    };

#else

    typedef struct IUcPiCommandButtonVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPiCommandButton * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPiCommandButton * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPiCommandButton * This);

         HRESULT ( STDMETHODCALLTYPE *GetName )(
            IUcPiCommandButton * This,
             LCID lcid,
             BSTR *name);

         HRESULT ( STDMETHODCALLTYPE *get_EnabledPicture )(
            IUcPiCommandButton * This,
             IUnknown **pPicture);

         HRESULT ( STDMETHODCALLTYPE *get_DisabledPicture )(
            IUcPiCommandButton * This,
             IUnknown **pPicture);

         HRESULT ( STDMETHODCALLTYPE *get_Enabled )(
            IUcPiCommandButton * This,
             VARIANT_BOOL *bEnabled);

         HRESULT ( STDMETHODCALLTYPE *put_Enabled )(
            IUcPiCommandButton * This,
             VARIANT_BOOL bEnabled);

         HRESULT ( STDMETHODCALLTYPE *get_Checked )(
            IUcPiCommandButton * This,
             VARIANT_BOOL *bChecked);

         HRESULT ( STDMETHODCALLTYPE *put_Checked )(
            IUcPiCommandButton * This,
             VARIANT_BOOL bChecked);

         HRESULT ( STDMETHODCALLTYPE *get_ButtonStyle )(
            IUcPiCommandButton * This,
             long *style);

         HRESULT ( STDMETHODCALLTYPE *Execute )(
            IUcPiCommandButton * This,
             VARIANT Objects);

        END_INTERFACE
    } IUcPiCommandButtonVtbl;

    interface IUcPiCommandButton
    {
        CONST_VTBL struct IUcPiCommandButtonVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPiCommandButton_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPiCommandButton_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPiCommandButton_Release(This)	\
    ((This)->lpVtbl -> Release(This))
#define IUcPiCommandButton_GetName(This,lcid,name)	\
    ((This)->lpVtbl -> GetName(This,lcid,name))

#define IUcPiCommandButton_get_EnabledPicture(This,pPicture)	\
    ((This)->lpVtbl -> get_EnabledPicture(This,pPicture))

#define IUcPiCommandButton_get_DisabledPicture(This,pPicture)	\
    ((This)->lpVtbl -> get_DisabledPicture(This,pPicture))

#define IUcPiCommandButton_get_Enabled(This,bEnabled)	\
    ((This)->lpVtbl -> get_Enabled(This,bEnabled))

#define IUcPiCommandButton_put_Enabled(This,bEnabled)	\
    ((This)->lpVtbl -> put_Enabled(This,bEnabled))

#define IUcPiCommandButton_get_Checked(This,bChecked)	\
    ((This)->lpVtbl -> get_Checked(This,bChecked))

#define IUcPiCommandButton_put_Checked(This,bChecked)	\
    ((This)->lpVtbl -> put_Checked(This,bChecked))

#define IUcPiCommandButton_get_ButtonStyle(This,style)	\
    ((This)->lpVtbl -> get_ButtonStyle(This,style))

#define IUcPiCommandButton_Execute(This,Objects)	\
    ((This)->lpVtbl -> Execute(This,Objects))

#endif


#endif 	




#endif 	


#ifndef __IUcPiCommandButton2_INTERFACE_DEFINED__
#define __IUcPiCommandButton2_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPiCommandButton2;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("EC923218-5A17-11E7-B72E-BC5FF42AC839")
    IUcPiCommandButton2 : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE get_CheckedPicture(
             IUnknown **pPicture) = 0;

        virtual  HRESULT STDMETHODCALLTYPE get_UncheckedPicture(
             IUnknown **pPicture) = 0;

    };

#else

    typedef struct IUcPiCommandButton2Vtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPiCommandButton2 * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPiCommandButton2 * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPiCommandButton2 * This);

         HRESULT ( STDMETHODCALLTYPE *get_CheckedPicture )(
            IUcPiCommandButton2 * This,
             IUnknown **pPicture);

         HRESULT ( STDMETHODCALLTYPE *get_UncheckedPicture )(
            IUcPiCommandButton2 * This,
             IUnknown **pPicture);

        END_INTERFACE
    } IUcPiCommandButton2Vtbl;

    interface IUcPiCommandButton2
    {
        CONST_VTBL struct IUcPiCommandButton2Vtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPiCommandButton2_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPiCommandButton2_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPiCommandButton2_Release(This)	\
    ((This)->lpVtbl -> Release(This))


#define IUcPiCommandButton2_get_CheckedPicture(This,pPicture)	\
    ((This)->lpVtbl -> get_CheckedPicture(This,pPicture))

#define IUcPiCommandButton2_get_UncheckedPicture(This,pPicture)	\
    ((This)->lpVtbl -> get_UncheckedPicture(This,pPicture))

#endif


#endif 	




#endif 	



#define IPropertyInspectorSink IUcPiPropertyInspectorEventsSink
#define IID_IPropertyInspectorSink IID_IUcPiPropertyInspectorEventsSink
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0008_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0008_v0_0_s_ifspec;

#ifndef __IUcPiPropertyInspectorEventsSink_INTERFACE_DEFINED__
#define __IUcPiPropertyInspectorEventsSink_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPiPropertyInspectorEventsSink;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("EC923219-5A17-11E7-B72E-BC5FF42AC839")
    IUcPiPropertyInspectorEventsSink : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE Rebuild(
             DWORD dwFlags) = 0;

        virtual  HRESULT STDMETHODCALLTYPE RefreshControl(
             VARIANT var,
             DWORD dwFlags) = 0;

        virtual  HRESULT STDMETHODCALLTYPE GetPropertyControl(
             VARIANT var,
             IUnknown **ppUnk) = 0;

    };

#else

    typedef struct IUcPiPropertyInspectorEventsSinkVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPiPropertyInspectorEventsSink * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPiPropertyInspectorEventsSink * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPiPropertyInspectorEventsSink * This);

         HRESULT ( STDMETHODCALLTYPE *Rebuild )(
            IUcPiPropertyInspectorEventsSink * This,
             DWORD dwFlags);

         HRESULT ( STDMETHODCALLTYPE *RefreshControl )(
            IUcPiPropertyInspectorEventsSink * This,
             VARIANT var,
             DWORD dwFlags);

         HRESULT ( STDMETHODCALLTYPE *GetPropertyControl )(
            IUcPiPropertyInspectorEventsSink * This,
             VARIANT var,
             IUnknown **ppUnk);

        END_INTERFACE
    } IUcPiPropertyInspectorEventsSinkVtbl;

    interface IUcPiPropertyInspectorEventsSink
    {
        CONST_VTBL struct IUcPiPropertyInspectorEventsSinkVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPiPropertyInspectorEventsSink_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPiPropertyInspectorEventsSink_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPiPropertyInspectorEventsSink_Release(This)	\
    ((This)->lpVtbl -> Release(This))


#define IUcPiPropertyInspectorEventsSink_Rebuild(This,dwFlags)	\
    ((This)->lpVtbl -> Rebuild(This,dwFlags))

#define IUcPiPropertyInspectorEventsSink_RefreshControl(This,var,dwFlags)	\
    ((This)->lpVtbl -> RefreshControl(This,var,dwFlags))

#define IUcPiPropertyInspectorEventsSink_GetPropertyControl(This,var,ppUnk)	\
    ((This)->lpVtbl -> GetPropertyControl(This,var,ppUnk))

#endif


#endif 	




#endif 	


#define IPropertyInspectorInputEventSink IUcPiPropertyInspectorInputEventSink
#define IID_IPropertyInspectorInputEventSink IID_IUcPiPropertyInspectorInputEventSink
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0009_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_UcPi_0000_0009_v0_0_s_ifspec;

#ifndef __IUcPiPropertyInspectorInputEventSink_INTERFACE_DEFINED__
#define __IUcPiPropertyInspectorInputEventSink_INTERFACE_DEFINED__
EXTERN_C const IID IID_IUcPiPropertyInspectorInputEventSink;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("EC923102-5A17-11E7-B72E-BC5FF42AC839")
    IUcPiPropertyInspectorInputEventSink : public IUnknown
    {
    public:
        virtual  HRESULT STDMETHODCALLTYPE OnKeyDown(
             long pnChar,
             long keyData) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnPopulateContextMenu(
             VARIANT *flagArray,
             VARIANT *idArray,
             VARIANT *szItemArray) = 0;

        virtual  HRESULT STDMETHODCALLTYPE OnContextMenuCommand(
             int cmdId) = 0;

    };

#else

    typedef struct IUcPiPropertyInspectorInputEventSinkVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IUcPiPropertyInspectorInputEventSink * This,
             REFIID riid,
             void **ppvObject);

        ULONG ( STDMETHODCALLTYPE *AddRef )(
            IUcPiPropertyInspectorInputEventSink * This);

        ULONG ( STDMETHODCALLTYPE *Release )(
            IUcPiPropertyInspectorInputEventSink * This);

         HRESULT ( STDMETHODCALLTYPE *OnKeyDown )(
            IUcPiPropertyInspectorInputEventSink * This,
             long pnChar,
             long keyData);

         HRESULT ( STDMETHODCALLTYPE *OnPopulateContextMenu )(
            IUcPiPropertyInspectorInputEventSink * This,
             VARIANT *flagArray,
             VARIANT *idArray,
             VARIANT *szItemArray);

         HRESULT ( STDMETHODCALLTYPE *OnContextMenuCommand )(
            IUcPiPropertyInspectorInputEventSink * This,
             int cmdId);

        END_INTERFACE
    } IUcPiPropertyInspectorInputEventSinkVtbl;

    interface IUcPiPropertyInspectorInputEventSink
    {
        CONST_VTBL struct IUcPiPropertyInspectorInputEventSinkVtbl *lpVtbl;
    };
#ifdef COBJMACROS
#define IUcPiPropertyInspectorInputEventSink_QueryInterface(This,riid,ppvObject)	\
    ((This)->lpVtbl -> QueryInterface(This,riid,ppvObject))

#define IUcPiPropertyInspectorInputEventSink_AddRef(This)	\
    ((This)->lpVtbl -> AddRef(This))

#define IUcPiPropertyInspectorInputEventSink_Release(This)	\
    ((This)->lpVtbl -> Release(This))


#define IUcPiPropertyInspectorInputEventSink_OnKeyDown(This,pnChar,keyData)	\
    ((This)->lpVtbl -> OnKeyDown(This,pnChar,keyData))

#define IUcPiPropertyInspectorInputEventSink_OnPopulateContextMenu(This,flagArray,idArray,szItemArray)	\
    ((This)->lpVtbl -> OnPopulateContextMenu(This,flagArray,idArray,szItemArray))

#define IUcPiPropertyInspectorInputEventSink_OnContextMenuCommand(This,cmdId)	\
    ((This)->lpVtbl -> OnContextMenuCommand(This,cmdId))

#endif


#endif 	




#endif 	


#ifndef __IUcPiPropertyInspectorTheme_INTERFACE_DEFINED__
#define __IUcPiPropertyInspectorTheme_INTERFACE_DEFINED__

EXTERN_C const IID IID_IUcPiPropertyInspectorTheme;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("EC92321A-5A17-11E7-B72E-BC5FF42AC839")
    IUcPiPropertyInspectorTheme : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTheme( 
            /* [in] */ BSTR bstrThemeName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IAcPiPropertyInspectorThemeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IUcPiPropertyInspectorTheme * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IUcPiPropertyInspectorTheme * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IUcPiPropertyInspectorTheme * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTheme )( 
            IUcPiPropertyInspectorTheme * This,
            /* [in] */ BSTR bstrThemeName);
        
        END_INTERFACE
    } IUcPiPropertyInspectorThemeVtbl;

    interface IUcPiPropertyInspectorTheme
    {
        CONST_VTBL struct IUcPiPropertyInspectorThemeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IAcPiPropertyInspectorTheme_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IAcPiPropertyInspectorTheme_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IAcPiPropertyInspectorTheme_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IAcPiPropertyInspectorTheme_SetTheme(This,bstrThemeName)	\
    ( (This)->lpVtbl -> SetTheme(This,bstrThemeName) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IAcPiPropertyInspectorTheme_INTERFACE_DEFINED__ */
#ifndef __UCPILib_LIBRARY_DEFINED__
#define __UCPILib_LIBRARY_DEFINED__
EXTERN_C const IID LIBID_UCPILib;

EXTERN_C const CLSID CLSID_UcPiPropertyInspector;

#ifdef __cplusplus

class DECLSPEC_UUID("EC923023-5A17-11E7-B72E-BC5FF42AC839")
UcPiPropertyInspector;
#endif
#endif
unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * );
unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * );
unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * );

unsigned long             __RPC_USER  VARIANT_UserSize(     unsigned long *, unsigned long            , VARIANT * );
unsigned char * __RPC_USER  VARIANT_UserMarshal(  unsigned long *, unsigned char *, VARIANT * );
unsigned char * __RPC_USER  VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
void                      __RPC_USER  VARIANT_UserFree(     unsigned long *, VARIANT * );
#ifdef __cplusplus
}
#endif

#endif

